package com.liy.cloud.common.pw.dao;

import com.liy.cloud.common.pw.entity.PwAccountMainEntity;
import com.das.framework.common.dao.IBaseDao;

import java.util.List;
import java.util.Map;

/**
 * @Author: liyang
 * @Date: 2018/6/19 16:12
 **/
public interface PwAccountMainDao extends IBaseDao<PwAccountMainEntity, String> {

    /**
     * @Author:  zhangw
     * @param accountId 单据编号
     * @Description: 单据编号查询
     */
    PwAccountMainEntity selectByAccountId(String accountId);
    /*
     * @Author:  liyang
     * @Date:    2018/6/28  10:00
     * @Description: 获取最新的一条记录(操作时间排序  operDate)
     **/
    PwAccountMainEntity getLatestEntity(PwAccountMainEntity entity);

    /*
     * @Author:  liyang
     * @Date:    2018/6/28  10:00
     * @Description: 获取最新已审核的一条记录( 审核时间排序  checkDate  )
     **/
    PwAccountMainEntity getLatestEntityHasChecked(PwAccountMainEntity entity);


    /*
     * @Author:  liyang
     * @Date:    2018/6/28  10:00
     * @Description: 根据实体类的 AccountId 更新
     **/
    int updateMainEntityBtAccountId(PwAccountMainEntity entity);

    /*
     * @Author:  liyang
     * @Date:    2018/8/2  14:16
     * @Description:查询  起始时间     终止时间内   售票员      单据种类     售票员配票款        type=23
     * @params:          startTime   endTime    sellerId   type       售票员上下班交票款   type=14
     **/
    List<PwAccountMainEntity> findStartAndEndTimeSellerIdMainEntity(PwAccountMainEntity mainEntity);

    /*
     * @Author:  libs
     * @Date:    2018/8/7  16:38
     * @Description: 查询某一天的单据信息，必传字段：审核时间checkDate
     * @params: mainEntity
     **/
    List<PwAccountMainEntity> selectOneDay(PwAccountMainEntity mainEntity);

    /**
     * 返回设备票款统计
     * @return
     * @throws Exception
     */
    List<Map<String, Object>> getAccountNum() throws Exception;
}
